package view;

import data.*;
import java.awt.*;

/**
 * 大本营绘制视图类
 */
public class CampView {
    // -------------------- view --------------------

    /**
     * 功能: 绘制大本营
     * 参数:
     *   g: Graphics绘图对象
     *   camp: 大本营数据
     * 返回值: void
     */
    public void drawCamp(Graphics g, CampData camp) {
        if (camp.getState() == 1) {
            // 正常状态的大本营
            g.setColor(Color.GREEN);
            g.fillRect(camp.getX(), camp.getY(), camp.getWidth(), camp.getHeight());

            // 绘制旗帜
            g.setColor(Color.RED);
            g.fillRect(camp.getX() + 30, camp.getY() + 10, 20, 15);

            // 绘制旗杆
            g.setColor(Color.DARK_GRAY);
            g.fillRect(camp.getX() + 38, camp.getY() + 10, 4, 50);

            // 绘制边框
            g.setColor(Color.BLACK);
            g.drawRect(camp.getX(), camp.getY(), camp.getWidth(), camp.getHeight());

            // 绘制文字
            g.setColor(Color.WHITE);
            g.setFont(new Font("Arial", Font.BOLD, 12));
            g.drawString("BASE", camp.getX() + 22, camp.getY() + 70);

        } else {
            // 被摧毁状态的大本营
            g.setColor(Color.DARK_GRAY);
            g.fillRect(camp.getX(), camp.getY(), camp.getWidth(), camp.getHeight());

            // 绘制废墟效果
            g.setColor(Color.BLACK);
            g.drawRect(camp.getX(), camp.getY(), camp.getWidth(), camp.getHeight());

            // 绘制裂痕
            g.setColor(Color.RED);
            for (int i = 0; i < 5; i++) {
                int x1 = camp.getX() + (int)(Math.random() * camp.getWidth());
                int y1 = camp.getY() + (int)(Math.random() * camp.getHeight());
                int x2 = x1 + (int)(Math.random() * 20 - 10);
                int y2 = y1 + (int)(Math.random() * 20 - 10);
                g.drawLine(x1, y1, x2, y2);
            }

            g.setColor(Color.RED);
            g.setFont(new Font("Arial", Font.BOLD, 12));
            g.drawString("DESTROYED", camp.getX() + 5, camp.getY() + 45);
        }
    }
    // -------------------- view --------------------
}